package com.seeyon.apps.brwh.kit;

import java.math.BigDecimal;
import java.text.DecimalFormat;

/**
 * 数学运算
 */
public class MyMathUtil {

    /**
     * 两数相加
     * @param d1
     * @param d2
     * @param format   保留位数格式化   格式：#.00   不足的位数添加0
     * @return
     */
    public static String add(Double d1,Double d2,String format){
        BigDecimal bigDecimal = new BigDecimal(d1);
        BigDecimal bigDecimal2 = new BigDecimal(d2);
        DecimalFormat dformat = new DecimalFormat(format);
        BigDecimal add = bigDecimal.add(bigDecimal2);
        double v = add.doubleValue();
        String s = dformat.format(v);
        return s;
    }


    /**
     * 两数相减
     * @param d1
     * @param d2
     * @return
     */
    public static String sub(Double d1,Double d2,String format){
        BigDecimal bigDecimal = new BigDecimal(d1);
        BigDecimal bigDecimal2 = new BigDecimal(d2);
        DecimalFormat dformat = new DecimalFormat(format);
        BigDecimal subtract = bigDecimal.subtract(bigDecimal2);
        double v = subtract.doubleValue();
        String s = dformat.format(v);
        return s;
    }

    /**
     * 两数相乘
     * @param d1
     * @param d2
     * @return
     */
    public static String multiply(Double d1,Double d2,String format){
        BigDecimal bigDecimal = new BigDecimal(d1);
        BigDecimal bigDecimal2 = new BigDecimal(d2);
        DecimalFormat dformat = new DecimalFormat(format);
        BigDecimal multiply = bigDecimal.multiply(bigDecimal2);
        double v = multiply.doubleValue();
        String s = dformat.format(v);
        return s;
    }


    /**
     * 两数相除
     * @param d1
     * @param d2
     * @return
     */
    public static String divide(Double d1,Double d2,String format){
        BigDecimal bigDecimal = new BigDecimal(d1);
        BigDecimal bigDecimal2 = new BigDecimal(d2);
        DecimalFormat dformat = new DecimalFormat(format);
        BigDecimal divide = bigDecimal.divide(bigDecimal2,3,BigDecimal.ROUND_HALF_UP);
        double v = divide.doubleValue();
        String s = dformat.format(v);
        return s;
    }

    /**
     * 两数相除获取百分比
     * @param d1
     * @param d2
     * @return
     */
    public static String dividePercent(Double d1,Double d2,String format){
        BigDecimal bigDecimal = new BigDecimal(d1);
        BigDecimal bigDecimal2 = new BigDecimal(d2);
        DecimalFormat dformat = new DecimalFormat(format);
        BigDecimal divide = bigDecimal.divide(bigDecimal2,3,BigDecimal.ROUND_HALF_UP);
        double v = divide.doubleValue() * 100;
        String s = dformat.format(v);
        return s;
    }


    /**
     * Double数值格式化
     * @param d1
     * @param format
     * @return
     */
    public static String doubleFormat(Double d1,String format){
        DecimalFormat dformat = new DecimalFormat(format);
        String s = dformat.format(d1);
        return s;
    }
}
